This invention relates to call set-up systems.
Call set-up systems are known in which call set-up involves a plurality of call agents associated with respective packet-switched networks which are connected to each other by means of NAT (network address translation) devices, also known as address translators. The NAT devices define addresses within one network which provide a connecting path to the other network to which it connects. The call set-up devices define a series of addresses, including those of NAT devices, via which the media packets of the call are sent. In a call between two user terminals, for example, there are two paths between the two terminals, one in each direction. Typically, the media call takes place between one or more private networks joined by the internet. The invention is particularly concerned with voice calls. There is increasing interest in using IP (Internet Protocol) for voice in place of the usual circuit-switched telecommunications network, because there are maintenance savings if one network can be used for two different functions.
One known protocol for initiating voice calls via the internet is Session Initiation Protocol (SIP-RFC 3261), although it can also be used for initiating calls using other interactive media such as video or games. This protocol is adapted for use in the case of calls involving private networks and the internet.
FIG. 1 shows the set-up of a call using SIP signalling, between two networks. A call is made from user agent P in network 1, for example, a private network, to user X (not shown) in the central network 2, for example, the internet. It is forwarded on behalf of user X by call agent S to user agent V, which is in the same private network 1 as the caller.
All SIP signalling messages are shown in FIG. 1, but the text of messages is not shown. SIP messages are standard messages whose format can be seen from IETF call examples documents.
User agent P initiates a call by sending an SIP Invite message to its local call agent Q. This message contains a session description (Session Description Protocol—RFC 2327) indicating the media characteristics and the address (1.1.1.1) at which user agent P wishes to receive media packets. For convenience, only the last two segments of this address, and of other addresses, are shown in FIG. 1.
Call agent Q responds with a SIP ‘100: trying’ message.
Call agent Q determines that the destination, X, of the call is in the central network 2, and that this is reached via a network NAT device R which it controls. It therefore opens a pinhole in NAT device R to permit a media flow from the central network to the media address of user agent P (1.1.1.1). The address returned to call agent Q by NATR (2.2.2.1) is then used in an Invite message sent by call agent Q to call agent S in the central network (A pinhole is a path through the NAT device that is opened specifically for a single media flow. The term ‘pinhole’ emphasises that only packets with a particular combination of source and destination addresses will pass through the NAT device, while other packets that do not match a pinhole will be blocked.)
Call agent S responds with a ‘100: trying’ message.
Call agent S determines that user X has requested that their calls be forwarded to user agent V, and that the new destination is reached via call agent U in private network 1. User X could be a home telephone number accessible via the internet, and the user could have set up an arrangement for their calls to be forwarded to their office in the private network 1. Call agent S therefore passes on the Invite message with a changed URI (Uniform Resource Identifier), in this case, the name of the communications resource defining the destination of the call, to call agent U.
Call agent U responds with a ‘100: trying’ message.
Call agent U recognises that the call has arrived from a different network via a NAT device T that it controls. It therefore opens a pinhole in NAT device T to permit a media flow from the edge network 1 to the media address within the central network (2.2.2.1). The address returned by NAT device T (1.1.1.3) is then used in the Invite message sent to user agent V.
The call has now reached its destination. User agent V responds with a ‘180: ringing’ message that is passed back to the caller via the chain of call agents.
When the call is answered, user agent V sends a ‘200: OK’ message back to call agent U. The message contains a session description indicating the media characteristics and the address (1.1.1.4) at which user agent V wishes to receive media packets.
Call agent U recognises that this message is for a call that arrived via NAT device T that it controls. It therefore opens a pinhole in NAT device T to permit a media flow from the central network 2 to the media address within the edge network (1.1.1.4). The address returned by NAT device T (2.2.2.2) is then used in the OK message passed on to call agent S.
The OK message is passed back by call agent S to call agent Q.
Call agent Q recognises that this call passes through NAT device R that it controls. It therefore opens a pinhole in NAT device R to permit a media flow from the edge network 1 to the media address within the central network (2.2.2.2). The address returned by NAT device R (1.1.1.2) is then used in the OK message passed on to user agent P.
User agent P then completes the SIP signalling sequence by sending an ACK message. This is passed along the chain of call agents to the called user agent V. The user agents have each received an address within their local network to which media packets should be sent. This is the address of their local network address translation device, R and T. The NAT devices have been configured to send media packets received from the edge network 1 to the address of the other NAT device within the middle network 2. The NAT devices have also been configured to send media packets received from the middle network to the address of the user agents in the edge network 1. Media packets can therefore be sent between the two user agents P,V via the two NAT devices R and T via media paths 3, 4, 5 in one direction, and via media paths 3a, 4a, 5a in the return direction.
The resulting media flow is looped unnecessarily through the central network 2, through paths 4, 4a. 
It will be seen that IP calls traversing multiple NAT devices lose information about preceding networks at each NAT device. If the call is routed back into a network segment that it has already traversed, then it is not possible to connect directly in that network segment. This can result in unnecessary network traffic and over-use of some network paths.
In one particular application, the edge network could be a small office, NATs T and R could be incorporated into one personal computer which can communicate with the internet 2, and user agents P and V could be other personal computers, and there could be further personal computers (not shown) in the edge network. The personal computers could all be in speech communication with each other using SIP, albeit via the personal computer in communication with the internet. Unfortunately, each time a call is set up, such as between user agents P and V, it traverses NATs T and R, and uses up scarce media paths. The reason for going via the NAT pinholes is that the normal SIP protocol requires media addresses to be selected before the call agent determines the final destination of the call. If a route via the NAT is selected then the call will succeed if it terminates in a different network, and (by means of constructing another pinhole to re-enter the original network) will also succeed if the call terminates back in the same network as its origin. Selecting a NAT route for all calls is thus the safe option that will always work, albeit inefficiently.
A further example is shown with reference to FIG. 2, which shows the set-up of a call using SIP signalling, between three networks. A call originating at device A in network 6 (Office LAN 1) is initially routed via the internet 7 to device B in network 8 (Office LAN 2), and then forwarded to device C in network 6. As the call traverses each NAT device 9,10 connecting the networks, information about the previous network is lost. The resulting call therefore consumes resources in all three networks. It will be noted that in FIG. 2, both outward and return paths of the call are shown as a single line. This convention also applies to the other figures.
A solution known as dropback re-routing has been proposed using techniques such as the ‘302: Moved temporarily’ response defined in SIP RFC3261, under which a new call is established directly between A and C, but this means that the call is no longer able to be controlled by devices elsewhere in the network (such as device B).